home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 January: Mac OS SDK / Dev.CD Jan 98 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / AIncludes / OSUtils.a < prev    next >
Encoding:
Text File  |  1997-08-12  |  11.2 KB  |  462 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        OSUtils.a
  3. ;
  4. ;    Contains:    OS Utilities Interfaces.
  5. ;
  6. ;    Version:    Technology:    System 7.5
  7. ;                Release:    Universal Interfaces 3.0.1
  8. ;
  9. ;    Copyright:    © 1985-1997 by Apple Computer, Inc., all rights reserved
  10. ;
  11. ;    Bugs?:        Please include the the file and version information (from above) with
  12. ;                the problem description.  Developers belonging to one of the Apple
  13. ;                developer programs can submit bug reports to:
  14. ;
  15. ;                    devsupport@apple.com
  16. ;
  17. ;
  18.     IF &TYPE('__OSUTILS__') = 'UNDEFINED' THEN
  19. __OSUTILS__ SET 1
  20.  
  21.     IF &TYPE('__TYPES__') = 'UNDEFINED' THEN
  22.     include 'Types.a'
  23.     ENDIF
  24.     IF &TYPE('__MIXEDMODE__') = 'UNDEFINED' THEN
  25.     include 'MixedMode.a'
  26.     ENDIF
  27. ;   HandToHand and other memory utilties were moved to MacMemory.h 
  28.     IF &TYPE('__MACMEMORY__') = 'UNDEFINED' THEN
  29.     include 'MacMemory.a'
  30.     ENDIF
  31. ;   GetTrapAddress and other trap table utilties were moved to Patches.h 
  32.     IF &TYPE('__PATCHES__') = 'UNDEFINED' THEN
  33.     include 'Patches.a'
  34.     ENDIF
  35. ;   Date and Time utilties were moved to DateTimeUtils.h 
  36.     IF &TYPE('__DATETIMEUTILS__') = 'UNDEFINED' THEN
  37.     include 'DateTimeUtils.a'
  38.     ENDIF
  39.  
  40.  
  41. useFree                            EQU        0
  42. useATalk                        EQU        1
  43. useAsync                        EQU        2
  44. useExtClk                        EQU        3                    ;Externally clocked
  45. useMIDI                            EQU        4
  46.  
  47. false32b                        EQU        0                    ;24 bit addressing error
  48. true32b                            EQU        1                    ;32 bit addressing error
  49.  
  50.                                                             ; result types for RelString Call 
  51. sortsBefore                        EQU        -1                    ;first string < second string
  52. sortsEqual                        EQU        0                    ;first string = second string
  53. sortsAfter                        EQU        1                    ;first string > second string
  54.  
  55. dummyType                        EQU        0
  56. vType                            EQU        1
  57. ioQType                            EQU        2
  58. drvQType                        EQU        3
  59. evType                            EQU        4
  60. fsQType                            EQU        5
  61. sIQType                            EQU        6
  62. dtQType                            EQU        7
  63. nmType                            EQU        8
  64. ; typedef SignedByte                     QTypes
  65.  
  66. SysParmType                RECORD 0
  67. valid                     ds.b    1                ; offset: $0 (0)
  68. aTalkA                     ds.b    1                ; offset: $1 (1)
  69. aTalkB                     ds.b    1                ; offset: $2 (2)
  70. config                     ds.b    1                ; offset: $3 (3)
  71. portA                     ds.w    1                ; offset: $4 (4)
  72. portB                     ds.w    1                ; offset: $6 (6)
  73. alarm                     ds.l    1                ; offset: $8 (8)
  74. font                     ds.w    1                ; offset: $C (12)
  75. kbdPrint                 ds.w    1                ; offset: $E (14)
  76. volClik                     ds.w    1                ; offset: $10 (16)
  77. misc                     ds.w    1                ; offset: $12 (18)
  78. sizeof                     EQU *                    ; size:   $14 (20)
  79.                         ENDR
  80. ; typedef struct SysParmType *            SysPPtr
  81.  
  82. QElem                    RECORD 0
  83. qLink                     ds.l    1                ; offset: $0 (0)
  84. qType                     ds.w    1                ; offset: $4 (4)
  85. qData                     ds.w    1                ; offset: $6 (6) <-- really an array of length one
  86. sizeof                     EQU *                    ; size:   $8 (8)
  87.                         ENDR
  88. ; typedef struct QElem *                QElemPtr
  89.  
  90. QHdr                    RECORD 0
  91. qFlags                     ds.w    1                ; offset: $0 (0)
  92. qHead                     ds.l    1                ; offset: $2 (2)
  93. qTail                     ds.l    1                ; offset: $6 (6)
  94. sizeof                     EQU *                    ; size:   $A (10)
  95.                         ENDR
  96. ; typedef struct QHdr *                    QHdrPtr
  97.  
  98.  
  99.  
  100. DeferredTask            RECORD 0
  101. qLink                     ds.l    1                ; offset: $0 (0)
  102. qType                     ds.w    1                ; offset: $4 (4)
  103. dtFlags                     ds.w    1                ; offset: $6 (6)
  104. dtAddr                     ds.l    1                ; offset: $8 (8)
  105. dtParam                     ds.l    1                ; offset: $C (12)
  106. dtReserved                 ds.l    1                ; offset: $10 (16)
  107. sizeof                     EQU *                    ; size:   $14 (20)
  108.                         ENDR
  109. ; typedef struct DeferredTask *            DeferredTaskPtr
  110.  
  111. MachineLocation            RECORD 0
  112. latitude                 ds.l    1                ; offset: $0 (0)
  113. longitude                 ds.l    1                ; offset: $4 (4)
  114. dlsDelta                 ds.b    1                ; offset: $8 (8)        ;  signed byte; daylight savings delta 
  115.                          ORG 8
  116. gmtDelta                 ds.l    1                ; offset: $8 (8)        ;  use low 24-bits only 
  117. sizeof                     EQU *                    ; size:   $C (12)
  118.                         ENDR
  119.  
  120. ;
  121. ; pascal Boolean IsMetric(void )
  122. ;
  123.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  124.         Macro
  125.         _IsMetric
  126.             move.w              #$0004,-(sp)
  127.             dc.w                $A9ED
  128.         EndM
  129.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  130.         IMPORT_CFM_FUNCTION IsMetric
  131.     ENDIF
  132.  
  133. ;
  134. ; pascal SysPPtr GetSysPPtr(void )
  135. ;
  136.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  137.         Macro
  138.         _GetSysPPtr           &dest=(sp)
  139.             move.l            #$000001F8,&dest
  140.         EndM
  141.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  142.         IMPORT_CFM_FUNCTION GetSysPPtr
  143.     ENDIF
  144.  
  145.  
  146. ;    NOTE: SysBeep() has been moved to Sound.h.  
  147. ;          We could not automatically #include Sound.h in this file
  148. ;          because Sound.h indirectly #include's OSUtils.h which
  149. ;          would make a circular include.
  150. ;
  151.  
  152. ;
  153. ; pascal OSErr DTInstall(DeferredTaskPtr dtTaskPtr)
  154. ;
  155.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  156.         ; parameters:
  157.         ;    dtTaskPtr       => A0
  158.         ; returns:
  159.         ;    OSErr           <= D0
  160.         _DTInstall:    OPWORD    $A082
  161.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  162.         IMPORT_CFM_FUNCTION DTInstall
  163.     ENDIF
  164.  
  165.  
  166.  
  167. ;
  168. ; pascal SInt8 GetMMUMode(void)
  169. ;
  170.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  171.         Macro
  172.         _GetMMUMode           &dest=(sp)
  173.             move.b            $0CB2,&dest
  174.         EndM
  175.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  176.         IMPORT_CFM_FUNCTION GetMMUMode
  177.     ENDIF
  178.  
  179. ;
  180. ; pascal SInt8 SwapMMUMode(SInt8 mode)
  181. ;
  182.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  183.         ; parameters:
  184.         ;    mode            => D0
  185.         ; returns:
  186.         ;    SInt8           <= D0
  187.         _SwapMMUMode:    OPWORD    $A05D
  188.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  189.         IMPORT_CFM_FUNCTION SwapMMUMode
  190.     ENDIF
  191.  
  192. ;
  193. ; pascal void Delay(unsigned long numTicks, unsigned long *finalTicks)
  194. ;
  195.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  196.         _Delay:    OPWORD    $A03B
  197.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  198.         IMPORT_CFM_FUNCTION Delay
  199.     ENDIF
  200.  
  201.  
  202. ;
  203. ; pascal OSErr WriteParam(void )
  204. ;
  205.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  206.         _WriteParam:    OPWORD    $A038
  207.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  208.         IMPORT_CFM_FUNCTION WriteParam
  209.     ENDIF
  210.  
  211. ;
  212. ; pascal void Enqueue(QElemPtr qElement, QHdrPtr qHeader)
  213. ;
  214.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  215.         ; parameters:
  216.         ;    qElement        => A0
  217.         ;    qHeader         => A1
  218.         _Enqueue:    OPWORD    $A96F
  219.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  220.         IMPORT_CFM_FUNCTION Enqueue
  221.     ENDIF
  222.  
  223. ;
  224. ; pascal OSErr Dequeue(QElemPtr qElement, QHdrPtr qHeader)
  225. ;
  226.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  227.         ; parameters:
  228.         ;    qElement        => A0
  229.         ;    qHeader         => A1
  230.         ; returns:
  231.         ;    OSErr           <= D0
  232.         _Dequeue:    OPWORD    $A96E
  233.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  234.         IMPORT_CFM_FUNCTION Dequeue
  235.     ENDIF
  236.  
  237. ;
  238. ; pascal OSErr InitUtil(void )
  239. ;
  240.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  241.         ; returns:
  242.         ;    OSErr           <= D0
  243.         _InitUtil:    OPWORD    $A03F
  244.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  245.         IMPORT_CFM_FUNCTION InitUtil
  246.     ENDIF
  247.  
  248.  
  249.     IF TARGET_CPU_PPC THEN
  250. ;
  251. ; pascal void MakeDataExecutable(void *baseAddress, unsigned long length)
  252. ;
  253.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  254.         IMPORT_CFM_FUNCTION MakeDataExecutable
  255.     ENDIF
  256.  
  257.     ENDIF    ; TARGET_CPU_PPC
  258.     IF TARGET_CPU_68K THEN
  259. ;
  260. ; pascal Boolean SwapInstructionCache(Boolean cacheEnable)
  261. ;
  262.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  263.         Macro
  264.         _SwapInstructionCache
  265.             moveq               #0,D0
  266.             dc.w                $A098
  267.         EndM
  268.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  269.         IMPORT_CFM_FUNCTION SwapInstructionCache
  270.     ENDIF
  271.  
  272. ;
  273. ; pascal void FlushInstructionCache(void )
  274. ;
  275.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  276.         Macro
  277.         _FlushInstructionCache
  278.             moveq               #1,D0
  279.             dc.w                $A098
  280.         EndM
  281.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  282.         IMPORT_CFM_FUNCTION FlushInstructionCache
  283.     ENDIF
  284.  
  285. ;
  286. ; pascal Boolean SwapDataCache(Boolean cacheEnable)
  287. ;
  288.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  289.         Macro
  290.         _SwapDataCache
  291.             moveq               #2,D0
  292.             dc.w                $A098
  293.         EndM
  294.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  295.         IMPORT_CFM_FUNCTION SwapDataCache
  296.     ENDIF
  297.  
  298. ;
  299. ; pascal void FlushDataCache(void )
  300. ;
  301.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  302.         Macro
  303.         _FlushDataCache
  304.             moveq               #3,D0
  305.             dc.w                $A098
  306.         EndM
  307.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  308.         IMPORT_CFM_FUNCTION FlushDataCache
  309.     ENDIF
  310.  
  311. ;
  312. ; pascal void FlushCodeCache(void )
  313. ;
  314.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  315.         _FlushCodeCache:    OPWORD    $A0BD
  316.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  317.         IMPORT_CFM_FUNCTION FlushCodeCache
  318.     ENDIF
  319.  
  320. ;
  321. ; pascal OSErr FlushCodeCacheRange(void *address, unsigned long count)
  322. ;
  323.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  324.         ; parameters:
  325.         ;    address         => A0
  326.         ;    count           => A1
  327.         ; returns:
  328.         ;    OSErr           <= D0
  329.         Macro
  330.         _FlushCodeCacheRange
  331.             moveq               #9,D0
  332.             dc.w                $A098
  333.         EndM
  334.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  335.         IMPORT_CFM_FUNCTION FlushCodeCacheRange
  336.     ENDIF
  337.  
  338. ;
  339. ; pascal void FlushExternalCache(void )
  340. ;
  341.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  342.         Macro
  343.         _FlushExternalCache
  344.             moveq               #6,D0
  345.             dc.w                $A098
  346.         EndM
  347.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  348.         IMPORT_CFM_FUNCTION FlushExternalCache
  349.     ENDIF
  350.  
  351.     ENDIF    ; TARGET_CPU_68K
  352. ;
  353. ; pascal void ReadLocation(MachineLocation *loc)
  354. ;
  355.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  356.         ; parameters:
  357.         ;    loc             => A0
  358.         Macro
  359.         _ReadLocation
  360.             move.l              #$000C00E4,D0
  361.             dc.w                $A051
  362.         EndM
  363.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  364.         IMPORT_CFM_FUNCTION ReadLocation
  365.     ENDIF
  366.  
  367. ;
  368. ; pascal void WriteLocation(const MachineLocation *loc)
  369. ;
  370.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  371.         ; parameters:
  372.         ;    loc             => A0
  373.         Macro
  374.         _WriteLocation
  375.             move.l              #$000C00E4,D0
  376.             dc.w                $A052
  377.         EndM
  378.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  379.         IMPORT_CFM_FUNCTION WriteLocation
  380.     ENDIF
  381.  
  382.  
  383.  
  384.     IF OLDROUTINENAMES THEN
  385.     ENDIF    ; OLDROUTINENAMES
  386. ;    NOTE: SysEnvirons is obsolete.  You should be using Gestalt.
  387. ;
  388.  
  389. ;  Environs Equates 
  390.  
  391. curSysEnvVers                    EQU        2                    ;Updated to equal latest SysEnvirons version
  392. SysEnvRec                RECORD 0
  393. environsVersion             ds.w    1                ; offset: $0 (0)
  394. machineType                 ds.w    1                ; offset: $2 (2)
  395. systemVersion             ds.w    1                ; offset: $4 (4)
  396. processor                 ds.w    1                ; offset: $6 (6)
  397. hasFPU                     ds.b    1                ; offset: $8 (8)
  398. hasColorQD                 ds.b    1                ; offset: $9 (9)
  399. keyBoardType             ds.w    1                ; offset: $A (10)
  400. atDrvrVersNum             ds.w    1                ; offset: $C (12)
  401. sysVRefNum                 ds.w    1                ; offset: $E (14)
  402. sizeof                     EQU *                    ; size:   $10 (16)
  403.                         ENDR
  404.  
  405.                                                             ; Machine Types 
  406. envMac                            EQU        -1
  407. envXL                            EQU        -2
  408. envMachUnknown                    EQU        0
  409. env512KE                        EQU        1
  410. envMacPlus                        EQU        2
  411. envSE                            EQU        3
  412. envMacII                        EQU        4
  413. envMacIIx                        EQU        5
  414. envMacIIcx                        EQU        6
  415. envSE30                            EQU        7
  416. envPortable                        EQU        8
  417. envMacIIci                        EQU        9
  418. envMacIIfx                        EQU        11
  419.  
  420.                                                             ; CPU types 
  421. envCPUUnknown                    EQU        0
  422. env68000                        EQU        1
  423. env68010                        EQU        2
  424. env68020                        EQU        3
  425. env68030                        EQU        4
  426. env68040                        EQU        5
  427.  
  428.                                                             ; Keyboard types 
  429. envUnknownKbd                    EQU        0
  430. envMacKbd                        EQU        1
  431. envMacAndPad                    EQU        2
  432. envMacPlusKbd                    EQU        3
  433. envAExtendKbd                    EQU        4
  434. envStandADBKbd                    EQU        5
  435. envPrtblADBKbd                    EQU        6
  436. envPrtblISOKbd                    EQU        7
  437. envStdISOADBKbd                    EQU        8
  438. envExtISOADBKbd                    EQU        9
  439. ;
  440. ; pascal OSErr SysEnvirons(short versionRequested, SysEnvRec *theWorld)
  441. ;
  442.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  443.         ; parameters:
  444.         ;    versionRequetheWorld=> D0
  445.         ;    theWorld        => A0
  446.         ; returns:
  447.         ;    OSErr           <= D0
  448.         _SysEnvirons:    OPWORD    $A090
  449.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  450.         IMPORT_CFM_FUNCTION SysEnvirons
  451.     ENDIF
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.     ENDIF ; __OSUTILS__ 
  459.  
  460.